﻿Imports OMANE.Common.Model.Interfaces
Imports PTIC_GestionBDD
Imports PTIC_Util
Imports OMANE.Common.Model.Referentiel

<OMANE.Common.ServiceInfo(LifeTime:=OMANE.Common.ServiceLifetime.Singleton, Name:="_api_UniversService_")> _
Public Class ModelOMANE
    Implements IModelOMANE

    Private m_Referentiel As IReferentielOMANE
    Private m_DataSet As DataSet
    Private m_Connection As IConnection
    Private m_ListeTraitements As ListeTraitementsBase(Of String)

    Public Sub Initialize() Implements IService.Initialize
        m_Connection = New PTIC_GestionBDD.ConnectionSAS()
        m_Connection.AssignLibName(csteEmplacementReferentiel, csteLibSASreferentiel)
        m_Connection.AssignLibName(csteEmplacementCalculsInt, csteLibSASCalculsInt)
        'Vérifier que le répertoire existe sur le disque
        'm_Connection.AssignLibName(csteEmplacementDefautTbleEncours, csteLibSASEncours)
        m_DataSet = New DataSet
        m_ListeTraitements = New ListeTraitementsBase(Of String)(m_Connection, m_DataSet)
        m_Referentiel = New ReferentielOMANE(m_ListeTraitements)
    End Sub

    Public ReadOnly Property Connection As PTIC_GestionBDD.IConnection Implements IModelOMANE.Connection
        Get
            Return m_Connection
        End Get
    End Property
    Public ReadOnly Property DataSet As System.Data.DataSet Implements IModelOMANE.DataSet
        Get
            Return m_DataSet
        End Get
    End Property
    Public ReadOnly Property ListeTraitements As ListeTraitementsBase(Of String) Implements IModelOMANE.ListeTraitements
        Get
            Return m_ListeTraitements
        End Get
    End Property
    Public ReadOnly Property Referentiel As Interfaces.IReferentielOMANE Implements Interfaces.IModelOMANE.Referentiel
        Get
            Return m_Referentiel
        End Get
    End Property
    Public Sub Reset() Implements IModelOMANE.Reset
    End Sub

#Region "IDisposable Support"
    Private disposedValue As Boolean ' Pour détecter les appels redondants

    ' IDisposable
    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                ' TODO: supprimez l'état managé (objets managés).
            End If

            ' TODO: libérez les ressources non managées (objets non managés) et substituez la méthode Finalize() ci-dessous.
            ' TODO: définissez les champs volumineux à null.
        End If
        Me.disposedValue = True
    End Sub

    ' TODO: substituez Finalize() uniquement si Dispose(ByVal disposing As Boolean) ci-dessus comporte du code permettant de libérer des ressources non managées.
    'Protected Overrides Sub Finalize()
    '    ' Ne modifiez pas ce code. Ajoutez du code de nettoyage dans Dispose(ByVal disposing As Boolean) ci-dessus.
    '    Dispose(False)
    '    MyBase.Finalize()
    'End Sub

    ' Ce code a été ajouté par Visual Basic pour permettre l'implémentation correcte du modèle pouvant être supprimé.
    Public Sub Dispose() Implements IDisposable.Dispose
        ' Ne modifiez pas ce code. Ajoutez du code de nettoyage dans Dispose(ByVal disposing As Boolean) ci-dessus.
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
#End Region

End Class
